Virtualization and iSCSI
There are two main categories of virtualization: 1) Computing Machine Virtualization 2) Resource Virtualization.
Computing machine virtualization involves definition and virtualization of multiple operating system (OS) instances and application stacks into partitions within a host system. Resource virtualization refers to the abstraction of computer peripheral functions. There are two main types of Resource virtualization: 1) Memory-Mapped I/O Virtualization 2) Storage Virtualization.
Examples of Memory-Mapped I/O Virtualization are those offered by PCI Express, or i-PCI as described in commonly assigned U.S. patent application Ser. No. 12/148,712, the teachings of which are incorporated herein by reference. Storage virtualization involves the abstraction and aggregation of multiple physical storage components into logical storage pools that can then be allocated as needed to computing machines. Storage virtualization falls into two categories: 1) File-level Virtualization 2) Block-level Virtualization.
In file-level virtualization, high-level file-based access is implemented. Network-attached Storage (NAS) using file-based protocols such as SMB and NFS is the prominent example.
In block-level virtualization, low-level data block access is implemented. In block-level virtualization, the storage devices appear to the computing machine as if it were locally attached. Storage Attached Network (SAN) is an example of this technical approach. SAN solutions that use block-based protocols include HyperSCSI (SCSI over Ethernet) and iSCSI (SCSI over TCP/IP).
Automatic Configuration Protocols:
Automatic Configuration Protocols are part of the current art. There have been several automatic configuration protocols introduced over recent years, typically as a lower-level protocol that is part of a higher standard. These include:
Universal Serial Bus (USB) with its ability to automatically detect and configure devices via a “surprise” attach/detach event.
PCI and PCI Express, with its non-surprise or signaled “hot plug” insertion/removal capability.
Bootp, as a part of UDP, used as a means for a client to automatically have its IP address assigned.
Reverse Address Resolution Protocol (RARP), part of TCP/IP, used as a means for a host system to obtain its IP or network address based on its Ethernet or data link layer address.
Address Resolution Protocol (ARP), part of TCP/IP, used as a protocol by which a host may determine another host's Ethernet or data link layer address based on the IP or network address it has for the host.
Dynamic Host Configuration Protocol (DHCP), as part of TCP/IP, which allows network devices to be added through automating the assignment of various IP parameters, including IP addresses.
In the current state of the art, there are multiple storage virtualization standards. In order to make the best choice among the standards for a given application, the user has to inspect the network topology, note the physical location of the targeted storage devices relative to the host, and understand the possible protocols that could be used to virtualize the storage resources to achieve the best performance (i.e. highest data rate, lowest latency). The level of expertise and the time required to complete a study of the network to achieve the best data transfers is too time consuming. As a result, most users must rely on networking experts or simply default their configuration to a single storage virtualization protocol—which typically is not ideal for all their networked storage devices.